package com.fly.simple;

import java.io.File;
import java.io.IOException;
import java.util.Collection;

import org.apache.commons.io.FileUtils;
import org.apache.commons.lang3.StringUtils;

import com.fly.simple.utils.ShellExecutor;

import lombok.extern.slf4j.Slf4j;

/**
 * 
 * 快速扫描项目代码文件并编译
 * 
 * @author 00fly
 * @version [版本号, 2025年5月20日]
 * @see [相关类/方法]
 * @since [产品/模块版本]
 */
@Slf4j
public class QuickCompile
{
    public static void main(String[] args)
        throws IOException
    {
        String path = new File("C:\\Gitee\\00fly").getCanonicalPath();
        log.info("项目路径: {}", path);
        Collection<File> poms = FileUtils.listFiles(new File(path), new String[] {"xml"}, true);
        poms.stream()
            .map(pom -> pom.getAbsolutePath())
            .filter(name -> StringUtils.endsWithIgnoreCase(name, "pom.xml"))
            .map(pomPath -> StringUtils.join("mvn compile -f ", pomPath)) // 待执行命令
            .parallel()// 并发，可选
            .forEach(cmd -> log.info(ShellExecutor.execute(cmd)));
    }
}
